/**websocket */

// WebSocket是一种协议，可以在单个长期连接上启用客户端和服务器之间的双向通信。
// 它是一种强大的技术，可以无需重复请求即可在客户端和服务器之间传输实时数据。
// WebSocket通常用于Web应用程序、实时游戏等应用程序中，需要在客户端和服务器之间进行实时通信。
// WebSocket通过建立客户端和服务器之间的连接来工作，并使用协议在两者之间传输数据。
// 该协议设计为轻量级和高效，可以实现客户端和服务器之间的实时通信。
// 发送数据：在WebSocket连接建立后，可以使用WebSocket对象来发送数据。可以使用WebSocket.send()方法来发送文本或二进制数据。例如：
// 发送文本数据
let ws = new WebSocket('ws://www.example.com')
ws.send('Hello, server!');

// 发送二进制数据
const buffer = new Uint8Array([0x48, 0x65, 0x6c, 0x6c, 0x6f]);
ws.send(buffer);

// 接收数据：在WebSocket连接建立后，可以使用WebSocket对象来接收数据。可以使用WebSocket.onmessage事件来监听接收到的数据。例如：
ws.onmessage = function (event) {
    console.log('Received message:', event.data);
};

// 在上面的代码中，当WebSocket连接建立后，会监听到onmessage事件，当接收到数据时，会将数据保存在event.data中。

// 关闭连接：在WebSocket连接建立后，可以使用WebSocket对象来关闭连接。可以使用WebSocket.close()方法来关闭连接。例如：
ws.close();

// 除了onmessage事件之外，WebSocket对象还提供了其他事件，可以用于监听WebSocket连接的各种状态和事件。以下是一些常见的WebSocket事件：

// onopen事件：当WebSocket连接建立后，会触发onopen事件。可以使用该事件来执行连接后的初始化操作。例如：
ws.onopen = function (event) {
    console.log('WebSocket connection opened');
};

// onclose事件：当WebSocket连接关闭后，会触发onclose事件。可以使用该事件来执行连接关闭后的清理操作。例如：
ws.onclose = function (event) {
    console.log('WebSocket connection closed');
};

// onerror事件：当WebSocket连接出现错误时，会触发onerror事件。可以使用该事件来执行错误处理操作。例如：
ws.onerror = function (event) {
    console.error('WebSocket error:', event);
};

// onmessageerror事件：当接收到的数据格式不正确时，会触发onmessageerror事件。可以使用该事件来执行错误处理操作。例如：
ws.onmessageerror = function (event) {
    console.error('WebSocket message error:', event);
};